5.3. 逻辑门
逻辑门 (Logic gates) 是数字电路的构建块,可在数字计算机中实现算术、控制和存储功能。设计复杂的数字电路需要采用高度的抽象:设计人员使用一小组基本逻辑门创建实现基本功能的简单电路;这些从其实现中抽象出来的简单电路被用作创建更复杂电路的构建块(简单电路组合在一起可以创建具有更复杂功能的新电路);这些更复杂的电路可以进一步抽象并用作创建更复杂功能的构建块;依此类推,构建处理器的完整处理、存储和控制组件。
晶体管(transistors)
逻辑门由蚀刻在半导体材料(例如硅片)上的晶体管构成。晶体管充当开关,控制流过芯片的电流。晶体管可以将其状态切换为开或关(高压或低压输出)。其输出状态取决于其当前状态和输入状态(高压或低压)。二进制值使用这些高电压 (1) 和低电压 (0) 进行编码,逻辑门通过排列几个晶体管来实现,这些晶体管对输入执行开关操作以产生逻辑门的输出。集成电路(芯片)上可容纳的晶体管数量是其功率的粗略衡量标准;每个芯片上的晶体管越多,就可以有更多的构建块来实现更多功能或存储。
5.3.1. 基本逻辑门
在最低层次上,所有电路都是由逻辑门连接在一起构成的。逻辑门对布尔操作数(0 或 1)执行布尔运算。AND、OR 和 NOT 形成一组完整的逻辑门,任何电路都可以由此构建。逻辑门有一个(NOT)或两个(AND 和 OR)二进制输入值,并产生一个二进制输出值,该输出值是对其输入的按位逻辑运算。例如,NOT 门的输入值 0 输出 1(1 为 NOT(0))。逻辑运算的真值表列出了每个输入排列的运算值。表 1 显示了 AND、OR 和 NOT 逻辑门的真值表。
表 1.基本逻辑运算的真值表。 ^da8f1e
A | B | A AND B | A OR B | NOT A |
---|---|---|---|---|
0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 0 |
图 1 展示了计算机架构师如何在电路图中表示这些门。
图 1. 用于单位输入的 AND、OR 和非逻辑门产生单位输出。 ^b1c9dd
多位版本的逻辑门(用于 M 位输入和输出)是一种使用 M 个一位逻辑门构建的非常简单的电路。M 位输入值的各个位分别输入到不同的一位门中,该一位门产生 M 位结果的相应输出位。例如, 图 2显示了由四个 1 位 AND 门构建的 4 位 AND 电路。
图 2. 由四个 1 位与门构成的 4 位与电路。 ^eeb447
这种非常简单的电路,仅扩展逻辑门的输入和输出位宽,通常被称为 M 位门,其中特定的 M 值指定了输入和输出位宽(位数)。
5.3.2. 其他逻辑门
尽管由 AND、OR 和 NOT 组成的逻辑门组足以实现任何电路,但还有其他基本逻辑门经常用于构建数字电路。这些额外的逻辑门包括 NAND(A AND B 的否定)、NOR(A OR B 的否定)和 XOR(排他或)。它们的真值表如 表 2 所示。
表 2. NAND、NOR、XOR 真值表。 ^a8eafc
A | B | A NAND B | A NOR B | A XOR B |
---|---|---|---|---|
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 0 |
NAND、NOR 和 XOR 门出现在电路图中,如 图 3所示。
图 3. NAND、NOR 和 XOR 逻辑门。 ^09f0ed
NAND 门和 NOR 门末端的圆圈表示否定或 NOT。例如,NOR 门看起来像 OR 门,但末端有一个圆圈,表示 NOR 是 OR 的否定。
逻辑门的最小子集
NAND、NOR 和 XOR 不是构建电路所必需的,但它们是添加到电路设计中常用的集合 {AND、OR、NOT} 的附加门。这些门中的任何一个都可以用晶体管(逻辑门的构建块)实现,也可以通过其他门的组合来实现。
在较大的集合 {AND、OR、NOT、NAND、NOR、XOR} 中,存在几个逻辑门的最小子集,仅这些子集就足以构建任何电路。例如,子集 {AND、NOT} 是一个最小子集:(A OR B) 等同于 NOT(NOT(A) AND NOT(B))。我们使用集合 {AND、OR、NOT} 而不是使用门的最小子集,因为它是最容易理解的集合。
由于 NAND、NOR 和 XOR 不是必需的,因此可以通过将 AND、OR 和 NOT 门组合成实现 NAND、NOR 和 XOR 功能的电路来实现它们的功能。例如,可以使用 NOT 与 OR 门组合来构建 NOR,即“(A NOR B) ≡ NOT(A OR B)”,如 图 4 所示。
图 4. NOR 门可以用 OR 门和非门来实现。输入 A 和 B 首先通过 OR 门,OR 门的输出输入到 NOT 门(NOR 是 OR 的 NOT)。
当今的集成电路芯片采用 CMOS 技术制造,该技术使用 NAND 作为芯片上电路的基本构建块。NAND 门本身构成了完整逻辑门的另一个最小子集。